﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace SMS
{
    public partial class fThongTinKhachHang : Form
    {
        fLogin main;
        KhachHang kh;
        public fThongTinKhachHang(fLogin main1)
        {
            InitializeComponent();
            main = main1;
            kh = new KhachHang(main);
        }
        SqlConnection conn;
        private void bntCapnhat_Click(object sender, EventArgs e)
        {
            btnLuu.Visible = true;
            bntCapnhat.Visible = false;
            pictureBox1.Visible = true;
            picEmployee.Visible = false;
            btnThem.Enabled = true;
            btnXoa.Enabled = true;


            //cho chinh sua
            txtTenKH.Enabled = true;
            txtBidanh.Enabled = true;
            txtDiaChi.Enabled = true;
            txtQuanHuyen.Enabled = true;
            txtThanhPho.Enabled = true;
            txtSodtnha.Enabled = true;
            txtDTDiDong.Enabled = true;
            txtNam.Enabled = true;


            txtNN.Enabled = true;
            cboTinhtrangxe.Enabled = true;
            cboGT.Enabled = true;
            cboNgay.Enabled = true;
            cboThang.Enabled = true;
            cboSokhung.Enabled = true;

        }
        private void bntHuy_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            btnLuu.Visible = false;
            bntCapnhat.Visible = true;
            pictureBox1.Visible = false;
            picEmployee.Visible = true;
            btnThem.Enabled = false;
            btnXoa.Enabled = false;

            txtTenKH.ResetText();
            txtBidanh.ResetText();
            txtCMND.ResetText();
            txtDiaChi.ResetText();
            txtQuanHuyen.ResetText();
            txtThanhPho.ResetText();
            txtSodtnha.ResetText();
            txtDTDiDong.ResetText();
            txtNam.ResetText();
            txtNN.ResetText();

            cboGT.Text = null;
            cboNgay.Text = null;
            cboThang.Text = null;
            cboTinhtrangxe.Text = null; 

            
            txtSoKhung.ResetText();
            txtSoMay.ResetText();
            txtLoaixe.ResetText();
            txtMauxe.ResetText();
            txtGia.ResetText();
            txtngaymua.ResetText();
            cboSokhung.Text = null;
            lstXeDaMua.Items.Clear();

        }
        private void fThongTinKhachHang_Load(object sender, EventArgs e)
        {
            cboSokhung.Items.Clear();
            kh.loadcombobox(cboSokhung, "select * from XEMAY where cmnd is null", 0);

            pictureBox1.Visible = false;
            btnThem.Enabled = false;
            btnXoa.Enabled = false;


            txtCMND.Enabled = false;
            txtTenKH.Enabled = false;
            txtBidanh.Enabled = false;
            txtDiaChi.Enabled = false;
            txtQuanHuyen.Enabled = false;
            txtThanhPho.Enabled = false;
            txtSodtnha.Enabled = false;
            txtDTDiDong.Enabled = false;
            txtNam.Enabled = false;
            cboTinhtrangxe.Enabled = false;
            txtNN.Enabled = false;
            cboGT.Enabled = false;
            cboNgay.Enabled = false;
            cboThang.Enabled = false;

            txtSoKhung.Enabled = false;
            txtSoMay.Enabled = false;
            txtLoaixe.Enabled = false;
            txtMauxe.Enabled = false;
            txtngaymua.Enabled = false;
            txtGia.Enabled = false;

            cboSokhung.Enabled = false;


        }
        private void btnXoa_Click(object sender, EventArgs e)
        {
            int i = lstXeDaMua.SelectedIndex;
            if (i >= 0)
            {
                lstXeDaMua.Items.RemoveAt(lstXeDaMua.SelectedIndex);
            }
        }
        private void btnThem_Click(object sender, EventArgs e)
        {
            bool check = true;
            if (cboSokhung.Text == null || cboSokhung.Text == "")
            {
                MessageBox.Show("Chọn số khung!");
            }
            else
            {

                for (int i = 0; i < lstXeDaMua.Items.Count; i++)
                {
                    if (cboSokhung.Text == lstXeDaMua.Items[i].ToString())
                    {
                        MessageBox.Show("Số khung đã tồn tại !");
                        check = false;
                        break;
                    }
                }
                if (check)
                {
                    lstXeDaMua.Items.Add(cboSokhung.Text);
                }
            }


        }
        private void btnInvisible_Click(object sender, EventArgs e)
        {
            DialogResult result;
            result = MessageBox.Show("Bạn có thực sự muốn invisible khách hàng này?", "", MessageBoxButtons.YesNo);
            if (result == DialogResult.No)
            {

            }
            if (result == DialogResult.Yes)
            {
                conn = new SqlConnection(main.ConnectDB);
                //Khai báo đổi tượng để truy vấn dữ liệu
                SqlCommand command2 = new SqlCommand();
                command2.Connection = conn;
                command2.CommandText = "UPDATE KHACHHANG " +
                             "SET TINHTRANG = @TINHTRANG " +
                             "WHERE (CMND = @CMND)";
                //Thêm các parameter
                // command.Parameters.Add(new SqlParameter("@Bidanh", txtBidanh.Text));
                command2.Parameters.Add(new SqlParameter("@TINHTRANG", "no"));
                //command.Parameters.Add(new SqlParameter("@Ten", txtTenKH.Text));
                command2.Parameters.Add(new SqlParameter("@CMND", txtCMND.Text));

                try
                {
                    //Mở kết nối
                    conn.Open();
                    //Thực thi việc thêm dữ liệu. kết quả trả về biến count là số dòng dữ liệu được thêm 
                    // (trong trường hợp này, nếu thành công thì có 1 dòng dữ liệu được thêm vào Database)
                    command2.ExecuteNonQuery();

                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    conn.Close();
                }

                main.Danhsachkhachhang.uDanhsachkhachhang_Load(null, null);

            }
        }
        private void lstXeDaMua_MouseClick(object sender, MouseEventArgs e)
        {
            cboTinhtrangxe.Text = null;
            txtSoKhung.ResetText();
            txtSoMay.ResetText();
            txtLoaixe.ResetText();
            txtMauxe.ResetText();
            txtGia.ResetText();

            int selectRow = lstXeDaMua.SelectedIndex;

            if (selectRow == -1)
            {
                MessageBox.Show("Chọn số khung!");
            }
            else
            {
                conn = new SqlConnection(main.ConnectDB);
                SqlCommand command1 = new SqlCommand();
                command1.Connection = conn;
                command1.CommandText = "select * from XEMAY X, CTXEMAY C, LOAIXE L, MAUXE M where C.SOKHUNG = '" + lstXeDaMua.Items[selectRow].ToString() + "'" +
                    " and X.SOKHUNG = '" + lstXeDaMua.Items[selectRow].ToString() + "'" +
                " AND L.MAQTLOAIXE= C.MAQTLOAIXE AND M.MAMAUXE=C.MAMAUXE";

                try
                {
                    conn.Open();
                    SqlDataReader reader = command1.ExecuteReader();
                    if (reader.Read())
                    {
                        txtSoKhung.Text = lstXeDaMua.Items[selectRow].ToString();
                        //txtSoKhung.Text = (reader["SOKHUNG"].ToString());
                        txtSoMay.Text = (reader["SOMAY"].ToString());
                        txtMauxe.Text = (reader["TENMAUXE"].ToString());
                        txtLoaixe.Text = (reader["TENLOAIXE"].ToString());
                        txtGia.Text = (reader["GIA"].ToString());
                        txtngaymua.Text = (reader["Ngaymua"].ToString());
                        cboTinhtrangxe.Text = (reader["TINHTRANGBD"].ToString());


                    }


                }
                catch (SqlException ex)
                {
                    string err = ex.Message;
                }
            }

        }
        private void btnLuu_Click(object sender, EventArgs e)
        {


  

            if (txtNam.Text == null || txtNam.Text == "")
            {
                MessageBox.Show("Nhập năm sinh");
            }

            else
            {
                if (int.Parse(txtNam.Text.ToString()) < 1900 || int.Parse(txtNam.Text.ToString()) > 3000)
                {
                    MessageBox.Show("Năm sinh không hợp lệ");
                }
                else
                {
                    ////////////////////////////////////////////////////////////////////
                    DateTime dateSN;
                    if (cboNgay.Text == "" || cboNgay.Text == null || cboThang.Text == "" || cboThang.Text == null)
                    {
                        dateSN = new DateTime();
                        conn = new SqlConnection(main.ConnectDB);
                        SqlCommand command = new SqlCommand();
                        command.Connection = conn;
                        command.CommandText = "UPDATE KHACHHANG " +
                                     "SET HOTEN = @Ten, BIDANH = @Bidanh, GIOITINH = @Gioitinh, DIACHI = @Dchi, NGAYSINH = @Ngaysinh, " +
                                     "NAMSINH = @Namsinh, THANGSINH = @Thangsinh, DTDIDONG = @DTDD,DTNHA = @DTNha, SINHNHAT=@SINHNHAT," +
                                     "TINHTP = @Tinhtp,QUANHUYEN = @Quanhuyen,NGHENHIEP = @NgheNghiep " +
                                     "WHERE CMND = @CMND";

                        command.Parameters.Add(new SqlParameter("@Bidanh", txtBidanh.Text));
                        command.Parameters.Add(new SqlParameter("@TINHTRANG", cboTinhtrangxe.Text));
                        command.Parameters.Add(new SqlParameter("@Ten", txtTenKH.Text));
                        command.Parameters.Add(new SqlParameter("@CMND", txtCMND.Text));
                        command.Parameters.Add(new SqlParameter("@Dchi", txtDiaChi.Text));
                        command.Parameters.Add(new SqlParameter("@Quanhuyen", txtQuanHuyen.Text));
                        command.Parameters.Add(new SqlParameter("@Tinhtp", txtThanhPho.Text));
                        command.Parameters.Add(new SqlParameter("@Gioitinh", cboGT.SelectedItem));
                        command.Parameters.Add(new SqlParameter("@Ngaysinh", DBNull.Value));
                        command.Parameters.Add(new SqlParameter("@Thangsinh", DBNull.Value));
                        command.Parameters.Add(new SqlParameter("@Namsinh", txtNam.Text));
                        command.Parameters.Add(new SqlParameter("@NgheNghiep", txtNN.Text));
                        command.Parameters.Add(new SqlParameter("@DTDD", txtDTDiDong.Text));
                        command.Parameters.Add(new SqlParameter("@DTNha", txtSodtnha.Text));
                        command.Parameters.Add(new SqlParameter("@SINHNHAT", DBNull.Value));



                        try
                        {
                            //Mở kết nối
                            conn.Open();
                            //Thực thi việc thêm dữ liệu. kết quả trả về biến count là số dòng dữ liệu được thêm 
                            // (trong trường hợp này, nếu thành công thì có 1 dòng dữ liệu được thêm vào Database)
                            command.ExecuteNonQuery();

                        }
                        catch (SqlException ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                        finally
                        {
                            conn.Close();
                            addCMND();
                            luuthongtinxe();
                            MessageBox.Show("Thông tin đã được cập nhật!");
                        }

                    }
                    else
                    {
                        dateSN = new DateTime(int.Parse(txtNam.Text), int.Parse(cboThang.Text), int.Parse(cboNgay.Text));
                        conn = new SqlConnection(main.ConnectDB);
                        SqlCommand command = new SqlCommand();
                        command.Connection = conn;
                        command.CommandText = "UPDATE KHACHHANG " +
                                     "SET HOTEN = @Ten, BIDANH = @Bidanh, GIOITINH = @Gioitinh, DIACHI = @Dchi, NGAYSINH = @Ngaysinh, " +
                                     "NAMSINH = @Namsinh, THANGSINH = @Thangsinh, DTDIDONG = @DTDD,DTNHA = @DTNha, SINHNHAT=@SINHNHAT," +
                                     "TINHTP = @Tinhtp,QUANHUYEN = @Quanhuyen,NGHENHIEP = @NgheNghiep " +
                                     "WHERE CMND = @CMND";

                        command.Parameters.Add(new SqlParameter("@Bidanh", txtBidanh.Text));
                        command.Parameters.Add(new SqlParameter("@TINHTRANG", cboTinhtrangxe.Text));
                        command.Parameters.Add(new SqlParameter("@Ten", txtTenKH.Text));
                        command.Parameters.Add(new SqlParameter("@CMND", txtCMND.Text));
                        command.Parameters.Add(new SqlParameter("@Dchi", txtDiaChi.Text));
                        command.Parameters.Add(new SqlParameter("@Quanhuyen", txtQuanHuyen.Text));
                        command.Parameters.Add(new SqlParameter("@Tinhtp", txtThanhPho.Text));
                        command.Parameters.Add(new SqlParameter("@Gioitinh", cboGT.SelectedItem));
                        command.Parameters.Add(new SqlParameter("@Ngaysinh", cboNgay.Text));
                        command.Parameters.Add(new SqlParameter("@Thangsinh", cboThang.Text));
                        command.Parameters.Add(new SqlParameter("@Namsinh", txtNam.Text));
                        command.Parameters.Add(new SqlParameter("@NgheNghiep", txtNN.Text));
                        command.Parameters.Add(new SqlParameter("@DTDD", txtDTDiDong.Text));
                        command.Parameters.Add(new SqlParameter("@DTNha", txtSodtnha.Text));
                        command.Parameters.Add(new SqlParameter("@SINHNHAT", dateSN));



                        try
                        {
                            //Mở kết nối
                            conn.Open();
                            //Thực thi việc thêm dữ liệu. kết quả trả về biến count là số dòng dữ liệu được thêm 
                            // (trong trường hợp này, nếu thành công thì có 1 dòng dữ liệu được thêm vào Database)
                            command.ExecuteNonQuery();

                        }
                        catch (SqlException ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                        finally
                        {
                            conn.Close();
                            addCMND();
                            luuthongtinxe();
                            MessageBox.Show("Thông tin đã được cập nhật!");
                        }

                    }
                    btnLuu.Visible = false;
                    bntCapnhat.Visible = true;
                    pictureBox1.Visible = false;
                    picEmployee.Visible = true;
                    btnThem.Enabled = false;
                    btnXoa.Enabled = false;
                    //this.Visible = false;


                    txtTenKH.Enabled = false;
                    txtBidanh.Enabled = false;
                    txtDiaChi.Enabled = false;
                    txtQuanHuyen.Enabled = false;
                    txtThanhPho.Enabled = false;
                    txtSodtnha.Enabled = false;
                    txtDTDiDong.Enabled = false;
                    txtNam.Enabled = false;


                    txtNN.Enabled = false;
                    cboTinhtrangxe.Enabled = false;
                    cboGT.Enabled = false;
                    cboNgay.Enabled = false;
                    cboThang.Enabled = false;
                    txtngaymua.Enabled = false;
                    cboSokhung.Enabled = false;
                }
            }
            main.Danhsachkhachhang.uDanhsachkhachhang_Load(null, null);


        }

        public void addCMND()
        {

            for (int i = 0; i < lstXeDaMua.Items.Count; i++)
            {

                SqlCommand command3 = new SqlCommand();
                command3.Connection = conn;
                command3.CommandText = "UPDATE  XEMAY SET CMND= @CMND where SOKHUNG=@SOKHUNG and TINHTRANGBD=@TINHTRANG  ";
                command3.Parameters.Add(new SqlParameter("@CMND", txtCMND.Text));
                command3.Parameters.Add(new SqlParameter("@TINHTRANG", "0"));
                command3.Parameters.Add(new SqlParameter("@SOKHUNG", lstXeDaMua.Items[i].ToString()));
                try
                {
                    conn.Open();                   
                    command3.ExecuteNonQuery();
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    conn.Close();
                }
            }
        }
        public void luuthongtinxe()
        {
            for (int i = 0; i < lstXeDaMua.Items.Count; i++)
            {
                SqlCommand command5 = new SqlCommand();
                command5.Connection = conn;
                command5.CommandText = "UPDATE xemay " +
                             "SET TINHTRANGBD = @tinhtrangbd " +
                             "WHERE sokhung = @sokhung";
                command5.Parameters.Add(new SqlParameter("@tinhtrangbd", cboTinhtrangxe.Text.ToString()));
                command5.Parameters.Add(new SqlParameter("@sokhung", txtSoKhung.Text.ToString()));
                try
                {
                    //Mở kết nối
                    conn.Open();
                    //Thực thi việc thêm dữ liệu.
                    command5.ExecuteNonQuery();
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    conn.Close();
                }
            }
        }

        private void txtCMND_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
            else
            {
            }
        }

        private void txtNam_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
            else
            {
            }
        }

        private void txtDTDiDong_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
            else
            {
            }
        }

        private void txtSodtnha_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
            else
            {
            }
        }   
   }
}
